~ubuntu-branches/ubuntu/hardy/prelude-manager/hardy

« back to all changes in this revision

Viewing changes to src/server-generic.c

  • Committer: Bazaar Package Importer
  • Author(s): Pierre Chifflier
  • Date: 2007-03-22 18:09:27 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20070322180927-tzvkkuk7yc5m0s9d
Tags: 0.9.7.2-2
* Fix permissions on configuration file (make sure it is not world-readable)
* Update my email address

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
#include <sys/types.h>
38
38
#include <arpa/inet.h>
39
39
#include <syslog.h>
40
 
#include <sys/poll.h>
41
40
#include <assert.h>
42
41
#include <sys/stat.h>
43
42
#include <signal.h>
381
380
         */        
382
381
        ret = fcntl(client, F_SETFL, O_NONBLOCK);
383
382
        if ( ret < 0 )
384
 
                return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not set non blocking mode for client: %s");
 
383
                return prelude_error_verbose(PRELUDE_ERROR_GENERIC, "could not set non blocking mode for client: %s", strerror(errno));
385
384
        
386
385
        fcntl(client, F_SETFD, fcntl(client, F_GETFD) | FD_CLOEXEC);
387
386
        
795
794
                return NULL;
796
795
        }
797
796
 
 
797
        server->sa = NULL;
798
798
        server->read = readf;
799
799
        server->write = writef;
800
800
        server->accept = acceptf;
826
826
        
827
827
        ret = inet_server_start(server, server->sa, server->slen);
828
828
        if ( ret < 0 ) {
829
 
                server_logic_stop(server->logic);
830
829
                free(server->sa);
 
830
                server->sa = NULL;
831
831
                return ret;
832
832
        }
833
833
 
850
850
                ret = inet_server_start(server, server->sa, server->slen);
851
851
        
852
852
        if ( ret < 0 ) {
853
 
                server_logic_stop(server->logic);
854
853
                free(server->sa);
 
854
                server->sa = NULL;
855
855
                return ret;
856
856
        }
857
857
 
874
874
 
875
875
 
876
876
 
877
 
void server_generic_close(server_generic_t *server) 
 
877
void server_generic_destroy(server_generic_t *server) 
878
878
{
879
879
        close(server->sock);
880
880
        
881
 
        if ( server->sa->sa_family == AF_UNIX )                 
882
 
                unlink(((struct sockaddr_un *)server->sa)->sun_path);
 
881
        if ( server->sa ) {
 
882
                if ( server->sa->sa_family == AF_UNIX )                 
 
883
                        unlink(((struct sockaddr_un *)server->sa)->sun_path);
 
884
                        
 
885
                free(server->sa);
 
886
        }
883
887
        
884
 
        server_logic_stop(server->logic);
 
888
        server_logic_destroy(server->logic);
 
889
        free(server);
885
890
}
886
891
 
887
892