sargs[sargc] = NULL;
- p = strchr(path,'/');
- if (p) *p = 0;
- io_printf(fd,"%s\n",path);
- if (p) *p = '/';
-
if (!read_line(fd, line, sizeof(line)-1)) {
return -1;
}
return -1;
}
+ io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);
+
+ p = strchr(path,'/');
+ if (p) *p = 0;
+ io_printf(fd,"%s\n",path);
+ if (p) *p = '/';
+
while (1) {
if (!read_line(fd, line, sizeof(line)-1)) {
return -1;
return 0;
}
+/* send a list of available modules to the client. Don't list those
+ with "list = False". */
static void send_listing(int fd)
{
int n = lp_numservices();
here */
static int start_daemon(int fd)
{
- char line[1024];
+ char line[200];
char *motd;
+ int version;
set_socket_options(fd,"SO_KEEPALIVE");
io_printf(fd,"@RSYNCD: %d\n", PROTOCOL_VERSION);
+ if (!read_line(fd, line, sizeof(line)-1)) {
+ return -1;
+ }
+
+ if (sscanf(line,"@RSYNCD: %d", &version) != 1) {
+ return -1;
+ }
+
motd = lp_motd_file();
if (*motd) {
FILE *f = fopen(motd,"r");
io_printf(fd,"\n");
}
- /* read a single line indicating the resource that is wanted */
while (1) {
int i;
int daemon_main(void)
{
- if (!lp_load(RSYNCD_CONF)) {
+ extern char *config_file;
+
+ if (!lp_load(config_file)) {
exit_cleanup(1);
}