void Winapi ec_post_goal(const pword goal) { pword *pw; if (g_emu_.nesting_level > 1) ec_panic("can't post goal to nested engine","ec_post_goal()"); pw = TG; /* new list element */ Push_List_Frame(); pw[0] = goal; Make_Var(&pw[1]); Bind_(POSTED_LAST.val.ptr, pw, TLIST); /* append */ ec_assign(&POSTED_LAST, pw[1].val, pw[1].tag); }
static pword _get_posted_goals(void) { pword posted, empty; /* terminate the posted-goals-list and copy its beginning */ Bind_(POSTED_LAST.val.ptr, 0, TNIL); posted = POSTED; /* reinitialise the list to an empty difference list */ Make_Ref(&empty, TG); Push_Var(); ec_assign(&POSTED, empty.val, empty.tag); ec_assign(&POSTED_LAST, empty.val, empty.tag); return posted; }
/* init_AcceptSock() */ static void init_AcceptSock (void) { static char fname[] = "init_AcceptSock()"; struct servent *sv; struct sockaddr_in svaddr; socklen_t len; int one = 1; struct hostent *hp; memset ((char *) &svaddr, 0, sizeof (svaddr)); if ((accept_sock = socket (AF_INET, SOCK_STREAM, 0)) < 0) { ls_syslog (LOG_ERR, I18N_FUNC_S_FAIL_M, fname, "socket", "RES"); resExit_ (1); } setsockopt (accept_sock, SOL_SOCKET, SO_REUSEADDR, (char *) &one, sizeof (int)); if (io_nonblock_ (accept_sock) < 0) ls_syslog (LOG_ERR, I18N_FUNC_D_FAIL_M, fname, "io_nonblock_", accept_sock); fcntl (accept_sock, F_SETFD, (fcntl (accept_sock, F_GETFD) | FD_CLOEXEC)); if (resParams[LSF_RES_PORT].paramValue) { if ((svaddr.sin_port = atoi (resParams[LSF_RES_PORT].paramValue)) == 0) { ls_syslog (LOG_ERR, _i18n_msg_get (ls_catd, NL_SETN, 5307, "%s: LSF_RES_PORT in lsf.conf (%s) must be positive integer; exiting"), fname, resParams[LSF_RES_PORT].paramValue); /* catgets 5307 */ resExit_ (1); } svaddr.sin_port = htons (svaddr.sin_port); } else if (debug) { svaddr.sin_port = htons (RES_PORT); } else { if ((sv = getservbyname ("res", "tcp")) == NULL) { ls_syslog (LOG_ERR, _i18n_msg_get (ls_catd, NL_SETN, 5309, "%s: res/tcp: unknown service, exiting"), fname); /* catgets 5309 */ resExit_ (1); } svaddr.sin_port = sv->s_port; } svaddr.sin_family = AF_INET; svaddr.sin_addr.s_addr = INADDR_ANY; if (Bind_ (accept_sock, (struct sockaddr *) &svaddr, sizeof (svaddr)) < 0) { ls_syslog (LOG_ERR, I18N_FUNC_D_FAIL_M, fname, "accept_sock", ntohs (svaddr.sin_port)); resExit_ (1); } if (listen (accept_sock, 1024) < 0) { ls_syslog (LOG_ERR, I18N_FUNC_FAIL_M, fname, "listen"); resExit_ (1); } if ((ctrlSock = TcpCreate_ (TRUE, 0)) < 0) { ls_syslog (LOG_ERR, I18N_FUNC_FAIL_M, fname, "TcpCreate_"); resExit_ (1); } len = sizeof (ctrlAddr); memset ((char *) &ctrlAddr, 0, sizeof (ctrlAddr)); if (getsockname (ctrlSock, (struct sockaddr *) &ctrlAddr, &len) < 0) { ls_syslog (LOG_ERR, I18N_FUNC_D_FAIL_M, fname, "getsockname", ctrlSock); resExit_ (-1); } if ((hp = Gethostbyname_ (Myhost))) memcpy ((char *) &ctrlAddr.sin_addr, (char *) hp->h_addr, (int) hp->h_length); }