Changeset 2624 for neercs


Ignore:
Timestamp:
Aug 1, 2008, 3:44:49 PM (15 years ago)
Author:
Pascal Terjan
Message:
  • Move all server creatio ninto server.c
Location:
neercs/trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • neercs/trunk/src/main.c

    r2614 r2624  
    332332    if(!attach)
    333333    {
    334         pid_t pid;
    335         char * sess;
    336 
    337         pid = fork();
    338         if(pid < 0)
    339         {
    340             fprintf(stderr, "Failed to create child process\n");
    341             goto end;
    342         }
    343         if(pid == 0)
    344         {
    345             int fd;
    346             close(0);
    347             close(1);
    348             close(2);
    349             fd = open("/dev/null", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
    350             dup2(fd, 0);
    351 #ifndef DEBUG
    352             dup2(fd, 1);
    353             dup2(fd, 2);
    354             if (fd > 2)
    355                 close(fd);
    356 #else
    357             if(fd != 0)
    358                 close(fd);
    359             fd = open("/tmp/log.txt", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
    360             dup2(fd, 1);
    361             dup2(fd, 2);
    362             if (fd > 2)
    363                 close(fd);
    364 #endif
    365             setsid();
    366             return server_main(to_grab, to_start, screen_list);
    367         }
    368         create_socket(screen_list, SOCK_CLIENT);
    369         while((sess = connect_socket(screen_list, SOCK_SERVER)) == NULL)
    370             usleep(100);
    371         free(sess);
    372 
    373         /* Create main canvas and associated caca window */
    374         screen_list->cv = cucul_create_canvas(0, 0);
    375         screen_list->dp = caca_create_display(screen_list->cv);
    376         if(!screen_list->dp)
    377             goto end;
    378         caca_set_cursor(screen_list->dp, 1);
    379 
    380         request_attach(screen_list);
     334        if(start_server(to_grab, to_start, screen_list))
     335            goto end;
    381336    }
    382337
  • neercs/trunk/src/neercs.h

    r2614 r2624  
    228228char * connect_socket(struct screen_list* screen_list, enum socket_type socktype);
    229229char ** list_sockets(char *socket_dir, char *session_name);
    230 int server_main(int *to_grab, char **to_start, struct screen_list *screen_list);
     230int start_server(int *to_grab, char **to_start, struct screen_list *screen_list);
    231231int send_event(caca_event_t ev, struct screen_list* screen_list);
    232232
  • neercs/trunk/src/server.c

    r2623 r2624  
    106106}
    107107
    108 int server_main(int *to_grab, char **to_start, struct screen_list *screen_list)
     108static int server_main(int *to_grab, char **to_start, struct screen_list *screen_list)
    109109{
    110110    int i;
     
    390390}
    391391
     392int start_server(int *to_grab, char **to_start, struct screen_list *screen_list)
     393{
     394    pid_t pid;
     395    char * sess;
     396
     397    pid = fork();
     398    if(pid < 0)
     399    {
     400        fprintf(stderr, "Failed to create child process\n");
     401        return 1;
     402    }
     403    if(pid == 0)
     404    {
     405        int fd;
     406        close(0);
     407        close(1);
     408        close(2);
     409        fd = open("/dev/null", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
     410        dup2(fd, 0);
     411#ifndef DEBUG
     412        dup2(fd, 1);
     413        dup2(fd, 2);
     414        if (fd > 2)
     415            close(fd);
     416#else
     417        if(fd != 0)
     418            close(fd);
     419        fd = open("/tmp/log.txt", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
     420        dup2(fd, 1);
     421        dup2(fd, 2);
     422        if (fd > 2)
     423            close(fd);
     424#endif
     425        setsid();
     426        return server_main(to_grab, to_start, screen_list);
     427    }
     428    create_socket(screen_list, SOCK_CLIENT);
     429    while((sess = connect_socket(screen_list, SOCK_SERVER)) == NULL)
     430        usleep(100);
     431    free(sess);
     432
     433    /* Create main canvas and associated caca window */
     434    screen_list->cv = cucul_create_canvas(0, 0);
     435    screen_list->dp = caca_create_display(screen_list->cv);
     436    if(!screen_list->dp)
     437        return 1;
     438    caca_set_cursor(screen_list->dp, 1);
     439
     440    request_attach(screen_list);
     441
     442    return 0;
     443}
     444
    392445long long get_us(void)
    393446{
Note: See TracChangeset for help on using the changeset viewer.