static int process_group(alpm_list_t *dbs, const char *group, int error) { int ret = 0; alpm_list_t *i; alpm_list_t *pkgs = alpm_find_group_pkgs(dbs, group); int count = alpm_list_count(pkgs); if(!count) { printf("target not found: %s\n", group); return 1; } if(error) { /* we already know another target errored. there is no reason to prompt the * user here; we already validated the group name so just move on since we * won't actually be installing anything anyway. */ goto cleanup; } for(i = pkgs; i; i = alpm_list_next(i)) { alpm_pkg_t *pkg = i->data; if(process_pkg(pkg) == 1) { ret = 1; goto cleanup; } } cleanup: alpm_list_free(pkgs); return ret; }
int CHelperUnit::recv_from_cgi(void) { int ret = ::recv (netfd, _curRecvBuf, MAX_HELPER_RECV_BUF, 0); log_error("*STEP: recv from logic server fd[%d] recv len[%d] this time", netfd, ret); if (-1 == ret) { log_debug("*STEP: ret = -1"); if((errno == EINTR) || (errno == EAGAIN) || (errno == EINPROGRESS)) { _stage = CONN_DATA_RECVING; return 0; } _stage = CONN_FATAL_ERROR; log_error ("*STEP: recv from logic server failed, unix fd[%d]", netfd); return -1; } if (0 == ret) { _stage = CONN_DISCONNECT; log_debug ("*STEP:logic server close, unix fd[%d]", netfd); return -1; } _r.append(_curRecvBuf, ret); if(process_pkg() < 0) return -1; _stage = CONN_RECV_DONE; log_debug("*STEP: recving from logic server complete, unix fd[%d] current recv len[%d]", netfd, ret); return ret; }
int CHelperUnit::HangupNotify (void) { log_debug("CHelperUnit object hangup notify: fd[%d]", netfd); update_timer(); process_pkg(); reset_helper(); return POLLER_COMPLETE; }
static int process_targname(alpm_list_t *dblist, const char *targname, int error) { alpm_pkg_t *pkg = alpm_find_dbs_satisfier(handle, dblist, targname); /* #FS#23342 - skip ignored packages when user says no */ if(alpm_errno(handle) == ALPM_ERR_PKG_IGNORED) { printf("skipping target: %s\n", targname); return 0; } if(pkg) { return process_pkg(pkg); } return process_group(dblist, targname, error); }