Source string Read only

_

(itstool) path: imageobject/imagedata This is a reference to an external file such as an image or video. When the file changes, the md5 hash will change to let you know you need to update your localized copy. The msgstr is not used at all. Set it to whatever you like once you have updated your copy of the file.

44/440
Context English State
Our First Server
Our first server will be somewhat more complex than our first client was: Not only do we have more sockets functions to use, but we need to write it as a daemon.
This is best achieved by creating a <emphasis>child process</emphasis> after binding the port. The main process then exits and returns control to the <application>shell</application> (or whatever program invoked it).
The child calls <function>listen</function>, then starts an endless loop, which accepts a connection, serves it, and eventually closes its socket.
/*
* daytimed - a port 13 server
*
* Programmed by G. Adam Stanislav
* June 19, 2001
*/
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;time.h&gt;
#include &lt;unistd.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;sys/socket.h&gt;
#include &lt;netinet/in.h&gt;

#define BACKLOG 4

int main() {
register int s, c;
int b;
struct sockaddr_in sa;
time_t t;
struct tm *tm;
FILE *client;

if ((s = socket(PF_INET, SOCK_STREAM, 0)) &lt; 0) {
perror("socket");
return 1;
}

bzero(&amp;sa, sizeof sa);

sa.sin_family = AF_INET;
sa.sin_port = htons(13);

if (INADDR_ANY)
sa.sin_addr.s_addr = htonl(INADDR_ANY);

if (bind(s, (struct sockaddr *)&amp;sa, sizeof sa) &lt; 0) {
perror("bind");
return 2;
}

switch (fork()) {
case -1:
perror("fork");
return 3;
break;
default:
close(s);
return 0;
break;
case 0:
break;
}

listen(s, BACKLOG);

for (;;) {
b = sizeof sa;

if ((c = accept(s, (struct sockaddr *)&amp;sa, &amp;b)) &lt; 0) {
perror("daytimed accept");
return 4;
}

if ((client = fdopen(c, "w")) == NULL) {
perror("daytimed fdopen");
return 5;
}

if ((t = time(NULL)) &lt; 0) {
perror("daytimed time");

return 6;
}

tm = gmtime(&amp;t);
fprintf(client, "%.4i-%.2i-%.2iT%.2i:%.2i:%.2iZ\n",
tm-&gt;tm_year + 1900,
tm-&gt;tm_mon + 1,
tm-&gt;tm_mday,
tm-&gt;tm_hour,
tm-&gt;tm_min,
tm-&gt;tm_sec);

fclose(client);
}
}
We start by creating a socket. Then we fill out the <varname>sockaddr_in</varname> structure in <varname>sa</varname>. Note the conditional use of <symbol>INADDR_ANY</symbol>:
if (INADDR_ANY)
sa.sin_addr.s_addr = htonl(INADDR_ANY);
Its value is <constant>0</constant>. Since we have just used <function>bzero</function> on the entire structure, it would be redundant to set it to <constant>0</constant> again. But if we port our code to some other system where <symbol>INADDR_ANY</symbol> is perhaps not a zero, we need to assign it to <varname>sa.sin_addr.s_addr</varname>. Most modern C compilers are clever enough to notice that <symbol>INADDR_ANY</symbol> is a constant. As long as it is a zero, they will optimize the entire conditional statement out of the code.
After we have called <function>bind</function> successfully, we are ready to become a <emphasis>daemon</emphasis>: We use <function>fork</function> to create a child process. In both, the parent and the child, the <varname>s</varname> variable is our socket. The parent process will not need it, so it calls <function>close</function>, then it returns <constant>0</constant> to inform its own parent it had terminated successfully.
Meanwhile, the child process continues working in the background. It calls <function>listen</function> and sets its backlog to <constant>4</constant>. It does not need a large value here because <emphasis>daytime</emphasis> is not a protocol many clients request all the time, and because it can process each request instantly anyway.
Finally, the daemon starts an endless loop, which performs the following steps:
Call <function>accept</function>. It waits here until a client contacts it. At that point, it receives a new socket, <varname>c</varname>, which it can use to communicate with this particular client.
It uses the C function <function>fdopen</function> to turn the socket from a low-level <emphasis>file descriptor</emphasis> to a C-style <varname>FILE</varname> pointer. This will allow the use of <function>fprintf</function> later on.
It checks the time, and prints it in the <emphasis><acronym>ISO</acronym> 8601</emphasis> format to the <varname>client</varname> <quote>file</quote>. It then uses <function>fclose</function> to close the file. That will automatically close the socket as well.
We can <emphasis>generalize</emphasis> this, and use it as a model for many other servers:
_ external ref='sockets/serv' md5='__failed__'
+-----------------+
| Create Socket |
+-----------------+
|
+-----------------+
| Bind Port | Daemon Process
+-----------------+
| +--------+
+-------------+--&gt;| Init |
| | +--------+
+-----------------+ | |
| Exit | | +--------+
+-----------------+ | | Listen |
| +--------+
| |
| +--------+
| | Accept |
| +--------+
| |
| +--------+
| | Serve |
| +--------+
| |
| +--------+
| | Close |
|&lt;--------+
<imageobject> <imagedata fileref="sockets/serv"/> </imageobject> <textobject> <_:literallayout-1/> </textobject> <textobject> <phrase>Sequential Server</phrase> </textobject>
This flowchart is good for <emphasis>sequential servers</emphasis>, i.e., servers that can serve one client at a time, just as we were able to with our <emphasis>daytime</emphasis> server. This is only possible whenever there is no real <quote>conversation</quote> going on between the client and the server: As soon as the server detects a connection to the client, it sends out some data and closes the connection. The entire operation may take nanoseconds, and it is finished.
The advantage of this flowchart is that, except for the brief moment after the parent <function>fork</function>s and before it exits, there is always only one <emphasis>process</emphasis> active: Our server does not take up much memory and other system resources.
Note that we have added <emphasis>initialize daemon</emphasis> in our flowchart. We did not need to initialize our own daemon, but this is a good place in the flow of the program to set up any <function>signal</function> handlers, open any files we may need, etc.
Just about everything in the flow chart can be used literally on many different servers. The <emphasis>serve</emphasis> entry is the exception. We think of it as a <emphasis><quote>black box</quote></emphasis>, i.e., something you design specifically for your own server, and just <quote>plug it into the rest.</quote>
Not all protocols are that simple. Many receive a request from the client, reply to it, then receive another request from the same client. Because of that, they do not know in advance how long they will be serving the client. Such servers usually start a new process for each client. While the new process is serving its client, the daemon can continue listening for more connections.
Now, go ahead, save the above source code as <filename>daytimed.c</filename> (it is customary to end the names of daemons with the letter <constant>d</constant>). After you have compiled it, try running it:
<prompt>%</prompt> <userinput>./daytimed</userinput>
bind: Permission denied
<prompt>%</prompt>
What happened here? As you will recall, the <emphasis>daytime</emphasis> protocol uses port 13. But all ports below 1024 are reserved to the superuser (otherwise, anyone could start a daemon pretending to serve a commonly used port, while causing a security breach).
Try again, this time as the superuser:
<prompt>#</prompt> <userinput>./daytimed</userinput>
<prompt>#</prompt>
What... Nothing? Let us try again:
<prompt>#</prompt> <userinput>./daytimed</userinput>

bind: Address already in use
<prompt>#</prompt>
Every port can only be bound by one program at a time. Our first attempt was indeed successful: It started the child daemon and returned quietly. It is still running and will continue to run until you either kill it, or any of its system calls fail, or you reboot the system.
ComponentTranslation
This translation Translated FreeBSD Doc/books_developers-handbook external ref='sockets/serv' md5='__failed__'
The following strings have different sources, but the same context.
Translated FreeBSD Doc/articles_explaining-bsd translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_freebsd-update-server translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_geom-class translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_gjournal-desktop external ref='disklabel2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servdisklabel2' md5='__failed__'
Translated FreeBSD Doc/articles_hubs translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_filtering-bridge translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_mailing-list-faq translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_nanobsd translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_fonts translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_pr-guidelines translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_vinum external ref='vinum-simple-vol' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-simple-vol' md5='__failed__'
Translated FreeBSD Doc/articles_vinum external ref='vinum-mirrored-vol' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-mirrored-vol' md5='__failed__'
Translated FreeBSD Doc/articles_gjournal-desktop translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_freebsd-releng translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_vm-design external ref='fig4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfig4' md5='__failed__'
Translated FreeBSD Doc/articles_gjournal-desktop external ref='disklabel1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servdisklabel1' md5='__failed__'
Translated FreeBSD Doc/articles_ldap-auth translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_leap-seconds translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_linux-users translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_linux-emulation translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_pam translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_pgpkeys translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_port-mentor-guidelines translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_problem-reports translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_releng external ref='branches-releng4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng4' md5='__failed__'
Translated FreeBSD Doc/articles_releng translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_releng external ref='branches-releng9' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng9' md5='__failed__'
Translated FreeBSD Doc/articles_releng external ref='branches-releng8' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng8' md5='__failed__'
Translated FreeBSD Doc/articles_releng external ref='branches-releng7' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng7' md5='__failed__'
Translated FreeBSD Doc/articles_releng external ref='branches-releng3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng3' md5='__failed__'
Translated FreeBSD Doc/articles_vinum translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_vm-design external ref='fig2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfig2' md5='__failed__'
Translated FreeBSD Doc/books_arch-handbook translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_bsdl-gpl translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd12' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd12' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-post-root-passwd' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-post-root-passwd' md5='__failed__'
Translated FreeBSD Doc/books_design-44bsd translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-ufs-warning' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-ufs-warning' md5='__failed__'
Translated FreeBSD Doc/books_design-44bsd external ref='fig2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfig2' md5='__failed__'
Translated FreeBSD Doc/books_dev-model translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_developers-handbook translator-credits
Translated FreeBSD Doc/books_dev-model external ref='branches' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches' md5='__failed__'
Translated FreeBSD Doc/books_faq translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_fdp-primer translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_porters-handbook translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_dev-model external ref='freebsd-code-model' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfreebsd-code-model' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='proc-add-committer' md5='__failed__'

Change compared to this translation:

external ref='sockets/sproc-add-committerv' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='proc-contrib' md5='__failed__'

Change compared to this translation:

external ref='sockets/servproc-contrib' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='proc-rm-committer' md5='__failed__'

Change compared to this translation:

external ref='sockets/sproc-rm-committerv' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='proc-commit' md5='__failed__'

Change compared to this translation:

external ref='sockets/servproc-commit' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='proc-elections' md5='__failed__'

Change compared to this translation:

external ref='sockets/servproc-elections' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='proc-pr' md5='__failed__'

Change compared to this translation:

external ref='sockets/servproc-pr' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-timezone-time' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-timezone-time' md5='__failed__'
Translated FreeBSD Doc/books_dev-model external ref='portsstatus' md5='__failed__'

Change compared to this translation:

external ref='sockets/servportsstatus' md5='__failed__'
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/slayers' md5='__failed__'
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/sainserv' md5='__failed__'
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/serv2' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-choose-mode' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-choose-mode' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-config-hostname' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-config-hostname' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-part-manual-create' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-part-manual-create' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-init-encription' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-init-encription' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-distfile-extracting' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-distfile-extracting' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-timezone-country' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-timezone-country' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-timezone-confirm' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-timezone-confirm' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-adduser3' md5='__failed__'

Change compared to this translation:

external ref='sockets/bsdinstall/bsdinstall-adduserv3' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-wireless-accesspoints' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-wireless-accesspoints' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='basics/example-dir2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbasics/example-dir2' md5='__failed__'
Translated FreeBSD Doc/articles_building-products external ref='freebsd-organization' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfreebsd-organization' md5='__failed__'
Translated FreeBSD Doc/articles_building-products external ref='freebsd-branches' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfreebsd-branches' md5='__failed__'
Translated FreeBSD Doc/articles_committers-guide translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd3' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd5' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd5' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd7' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd7' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd12' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd12' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd02' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd02' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd07' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd07' md5='__failed__'
Translated FreeBSD Doc/articles_contributing translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='mail/pine2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/pine2' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/pine4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/pine4' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-boot-options-menu' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-boot-options-menu' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-keymap-10' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-keymap-10' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-netinstall-mirrorselect' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-netinstall-mirrorselect' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-partmenu' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-partmenu' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-part-entire-part' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-part-entire-part' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-part-manual-partscheme' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-part-manual-partscheme' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-vdev_type' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-vdev_type' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-vdev_invalid' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-vdev_invalid' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-disk_info' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-disk_info' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-final-confirmation' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-final-confirmation' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-distfile-verifying' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-distfile-verifying' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-wireless-wpa2setup' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-wireless-wpa2setup' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface-ipv6' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface-ipv6' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface-slaac' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface-slaac' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface-ipv6-static' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface-ipv6-static' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-ipv4-dns' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-ipv4-dns' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-timezone-region' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-timezone-region' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-timezone-zone' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-timezone-zone' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-adduser1' md5='__failed__'

Change compared to this translation:

external ref='sockets/bsdinstall/bsdinstall-adduserv1' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-adduser2' md5='__failed__'

Change compared to this translation:

external ref='sockets/bsdinstall/bsdinstall-adduserv2' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-finalconfiguration' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-finalconfiguration' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-final-modification-shell' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-final-modification-shell' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='basics/example-dir1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbasics/example-dir1' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='basics/example-dir3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbasics/example-dir3' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='basics/example-dir5' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbasics/example-dir5' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd1' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd2' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd6' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd6' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd7' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd7' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd11' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd11' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd10' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd10' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd1' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd2' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd6' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd6' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd9' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd9' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd10' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd10' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd11' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd11' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd01' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd01' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd04' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd04' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd05' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd05' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd09' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd09' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd10' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd10' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/mutt1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/mutt1' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/pine5' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/pine5' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='advanced-networking/static-routes' md5='__failed__'

Change compared to this translation:

external ref='sockets/servadvanced-networking/static-routes' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-part-manual-addpart' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-part-manual-addpart' md5='__failed__'
Translated FreeBSD Doc/articles_remote-install translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_serial-uart translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/sain' md5='__failed__'
Translated FreeBSD Doc/articles_releng external ref='branches-releng6' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng6' md5='__failed__'
Translated FreeBSD Doc/articles_vinum external ref='vinum-raid10-vol' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-raid10-vol' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface-ipv4' md5='__failed__'
Translated FreeBSD Doc/articles_releng external ref='branches-releng5' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-releng5' md5='__failed__'
Translated FreeBSD Doc/articles_vm-design external ref='fig1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfig1' md5='__failed__'
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/sainmsb' md5='__failed__'
Translated FreeBSD Doc/articles_rc-scripting translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-config-components' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-config-components' md5='__failed__'
Translated FreeBSD Doc/articles_ipsec-must translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_vinum external ref='vinum-striped' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-striped' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-keymap-loading' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-keymap-loading' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-hardening' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-hardening' md5='__failed__'
Translated FreeBSD Doc/articles_vm-design translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_solid-state translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-swap-amount' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-swap-amount' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-keymap-testing' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-keymap-testing' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-timezone-date' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-timezone-date' md5='__failed__'
Translated FreeBSD Doc/articles_cups translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd5' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd5' md5='__failed__'
Translated FreeBSD Doc/articles_freebsd-questions translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd13' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd13' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/mutt2' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/mutt2' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/pine1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/pine1' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='advanced-networking/pxe-nfs' md5='__failed__'

Change compared to this translation:

external ref='sockets/servadvanced-networking/pxe-nfs' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-newboot-loader-menu' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-newboot-loader-menu' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-netinstall-files' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-netinstall-files' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-part-guided-disk' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-part-guided-disk' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-part-review' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-part-review' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-menu' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-menu' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-disk_select' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-disk_select' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-geli_password' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-geli_password' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-warning' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-warning' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-distfile-fetching' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-distfile-fetching' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-wireless-scan' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-wireless-scan' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4-static' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-configure-network-interface-ipv4-static' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-config-services' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-config-services' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-mainexit' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-mainexit' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='basics/example-dir4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbasics/example-dir4' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='basics/disk-layout' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbasics/disk-layout' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='geom/striping' md5='__failed__'

Change compared to this translation:

external ref='sockets/servgeom/striping' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd3' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd4' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd8' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd8' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd9' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd9' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/parallels-freebsd12' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/parallels-freebsd12' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd4' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd4' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd8' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd8' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/virtualpc-freebsd13' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/virtualpc-freebsd13' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd03' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd03' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd06' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd06' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd08' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd08' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='virtualization/vmware-freebsd11' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvirtualization/vmware-freebsd11' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/mutt3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/mutt3' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='mail/pine3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servmail/pine3' md5='__failed__'
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/sainfill' md5='__failed__'
Translated FreeBSD Doc/articles_building-products translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_vinum external ref='vinum-striped-vol' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-striped-vol' md5='__failed__'
Translated FreeBSD Doc/books_design-44bsd external ref='fig1' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfig1' md5='__failed__'
Translated FreeBSD Doc/books_handbook translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_contributors translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/articles_vinum external ref='vinum-raid5-org' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-raid5-org' md5='__failed__'
Translated FreeBSD Doc/articles_vm-design external ref='fig3' md5='__failed__'

Change compared to this translation:

external ref='sockets/servfig3' md5='__failed__'
Translated FreeBSD Doc/articles_releng external ref='branches-head' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbranches-head' md5='__failed__'
Translated FreeBSD Doc/articles_vinum external ref='vinum-concat' md5='__failed__'

Change compared to this translation:

external ref='sockets/servvinum-concat' md5='__failed__'
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/layers' md5='__failed__'
Translated FreeBSD Doc/articles_new-users translator-credits

Change compared to this translation:

external ref='sockets/serv' md5='__failed__'translator-credits
Translated FreeBSD Doc/books_developers-handbook external ref='sockets/sainlsb' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-rescan-devices' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-rescan-devices' md5='__failed__'
Translated FreeBSD Doc/books_handbook external ref='bsdinstall/bsdinstall-zfs-pool-name' md5='__failed__'

Change compared to this translation:

external ref='sockets/servbsdinstall/bsdinstall-zfs-pool-name' md5='__failed__'

Loading…

No matching activity found.

Browse all component changes

Things to check

Multiple failing checks

The translations in several languages have failing checks

Reset

Glossary

English English
No related strings found in the glossary.

Source information

Context
_
Source string comment

(itstool) path: imageobject/imagedata This is a reference to an external file such as an image or video. When the file changes, the md5 hash will change to let you know you need to update your localized copy. The msgstr is not used at all. Set it to whatever you like once you have updated your copy of the file.

Flags
read-only
Source string location
book.translate.xml:6168
String age
a year ago
Source string age
a year ago
Translation file
books/developers-handbook.pot, string 1004