void close_arena() { CHAR_DATA *gch; CHAR_DATA *vch; int arenaplayers = 0; arenaopen = FALSE; /* unfreeze all players */ for (vch=char_list;vch!=NULL;vch=vch->next) { if (IS_NPC(vch)) continue; if (vch->in_room != NULL) { if (IS_SET (vch->in_room->room_flags, ROOM_ARENA)) { REMOVE_BIT(vch->act, PLR_FREEZE); gch = vch; arenaplayers++; } } } /* if there was only one player, remove him */ if (arenaplayers <= 1) { if (arenaplayers) do_transfer(gch,"self 3054"); do_info(NULL, "The Arena fight was cancelled due to lack of players!"); return; } else do_info(NULL, "The arena is now closed, let the games begin!"); return; }
void do_resign(CHAR_DATA *ch, char *argument) { CHAR_DATA *victim; CHAR_DATA *gch; int found = 0; ROOM_INDEX_DATA *location; char buf[MAX_STRING_LENGTH]; if (IS_NPC(ch)) return; if (ch->in_room != NULL) { if (!IS_SET(ch->in_room->room_flags, ROOM_ARENA)) { send_to_char("Your not in the arena.\n\r",ch); return; } } sprintf(buf,"%s resigns from the arena",ch->name); do_info(ch,buf); if ((location = get_room_index(ROOM_VNUM_ALTAR)) == NULL) return; char_from_room(ch); char_to_room(ch, location); ch->fight_timer = 0; do_restore(ch, "self"); do_call(ch, "all"); ch->pcdata->alosses++; for (victim = char_list; victim != NULL; victim = victim->next) { if (IS_NPC(victim)) continue; if (victim->in_room != NULL && IS_SET(victim->in_room->room_flags, ROOM_ARENA) && victim->pcdata->chobj == NULL) { gch = victim; found++; } } if (found == 1) { sprintf(buf,"#C%s #oemerges victorious from the #Rarena#n",gch->name); gch->pcdata->awins++; do_info(gch,buf); if ((location = get_room_index(ROOM_VNUM_ALTAR)) == NULL) return; char_from_room(gch); char_to_room(gch, location); gch->fight_timer = 0; do_restore(gch, "self"); win_prize(gch); pulse_arena = PULSE_ARENA; } return; }
void open_arena() { arenaopen = TRUE; next_arena_room = ARENA_LVNUM; // first person to join will be put in this room. if (number_range(1,10) > 3) { arena_base = FALSE; do_info(NULL,"The arena is now open for EVERYONE '#Larenajoin#n'"); } else { do_info(NULL,"The arena is now open for BASE classes only '#Larenajoin#n'"); arena_base = TRUE; } }
int test_func7(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { int i, found; const char *p; temp = stderr; do_info(path_name); if ((p = strstr(path_name, NFTW)) != (char *)NULL) { p += strlen(NFTW); } else { p = path_name; } for (found = i = 0; i < nbads; i++) { if (strcmp(p, badlist[i].s) == 0) { found++; break; } } if (!found) { fprintf(temp, "ERROR: Should not have traversed %s\n", path_name); return 999; } return 0; }
int main(int argc, char **argv) { char **real_args; if (argc <= 1) usage(); argc -= 2; real_args = &(argv[2]); if (!strcmp(argv[1], "info")) do_info(argc, real_args); elif (!strcmp(argv[1], "monitor")) do_monitor(argc, real_args); elif (!strcmp(argv[1], "show")) do_show(argc, real_args); elif (!strcmp(argv[1], "showall")) do_showall(argc, real_args); elif (!strcmp(argv[1], "list")) do_list(argc, real_args); elif (!strcmp(argv[1], "owners")) do_owners(argc, real_args); elif (!strncmp(argv[1], "avail", 5)) do_avail(argc, real_args); elif (!strcmp(argv[1], "help")) do_help(argc, real_args); else { fprintf(stderr, "network: unknown option %s\n", argv[1]);
int test_func14(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { int i; const char *p; temp = stderr; do_info(path_name); if ((p = strstr(path_name, NFTW)) != (char *)NULL) { p += strlen(NFTW); } else { p = path_name; } for (i = 0; i < nbads; i++) { if (strcmp(p, badlist[i].s) == 0) { if (ftw_integer == FTW_DNR) { if (ftw_integer != badlist[i].i) { fprintf(temp, "ERROR: Bad third arg to fn() for %s\n", path_name); fprintf(temp, " Expected %s\n", ftw_mnemonic(badlist[i].i)); fprintf(temp, " Received %s\n", ftw_mnemonic(ftw_integer)); return 999; } } } } return 0; }
int test_func22(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { int fd; int i; do_info(path_name); /* get next file descriptor available */ if ((fd = open(path_name, O_RDONLY)) == -1) { perror("open"); return 999; } if (close(fd) == -1) { perror("close"); return 999; } for (i = 0; i <= ftwp->level + 1; i++) { if (fd == next_fd[i]) return 0; } fprintf(temp, "ERROR: At the start of the traversal the next four fds were: %d, %d, %d, and %d\n", next_fd[0], next_fd[1], next_fd[2], next_fd[3]); fprintf(temp, " Traversing level %d the next fd is %d\n", ftwp->level, fd); return 999; }
static BIF_RETTYPE persistent_term_info_trap(BIF_ALIST_1) { TrapData* trap_data = (TrapData *) BIF_ARG_1; Eterm res; Uint bump_reds; Binary* mbp; mbp = erts_magic_ref2bin(BIF_ARG_1); trap_data = ERTS_MAGIC_BIN_DATA(mbp); bump_reds = trap_data->remaining; res = do_info(BIF_P, trap_data); if (trap_data->remaining > 0) { ASSERT(res == am_ok); BUMP_ALL_REDS(BIF_P); BIF_TRAP1(&persistent_term_info_export, BIF_P, BIF_ARG_1); } else { /* * Decrement ref count (and possibly delete the hash table * and associated literal area). */ dec_table_refc(BIF_P, trap_data->table); trap_data->table = NULL; /* Prevent refc decrement */ BUMP_REDS(BIF_P, bump_reds); ASSERT(is_map(res)); BIF_RET(res); } }
void do_arenajoin(CHAR_DATA *ch, char *argument) { char buf[MAX_STRING_LENGTH]; int arenapeople=0; DESCRIPTOR_DATA *d; if (IS_NPC(ch)) return; if (ch->fight_timer > 0) { send_to_char("You have a fighttimer.\n\r",ch); return; } if ((get_age(ch) - 17) < 2) { send_to_char("Your still a newbie.\n\r",ch); return; } if (!arenaopen) { send_to_char("The arena is closed.\n\r",ch); return; } if (arena_base && is_upgrade(ch)) { send_to_char("Your an upgrade, not for you this time.\n\r",ch); return; } if (ch->in_room != NULL) { if (IS_SET (ch->in_room->room_flags, ROOM_ARENA)) { send_to_char("Your in the arena.\n\r",ch); return; } } for ( d = descriptor_list; d != NULL; d = d->next ) { if ( d->character != NULL ) { if (!d->connected == CON_PLAYING) continue; if (d->character->in_room != NULL) { if (IS_SET (d->character->in_room->room_flags, ROOM_ARENA)) arenapeople++; } } } if (arenapeople > ARENA_PLAYERS) { send_to_char("The arena is crowded atm.\n\r",ch); return; } char_from_room(ch); char_to_room(ch, get_room_index(next_arena_room)); next_arena_room += (ARENA_HVNUM - ARENA_LVNUM) / ARENA_PLAYERS; sprintf(buf,"%s has joined the arena!",ch->name); do_info(ch,buf); do_restore(ch,"self"); SET_BIT(ch->act, PLR_FREEZE); return; }
void do_defect(CHAR_DATA *ch, char *argument) { char arg1[MAX_STRING_LENGTH]; char buf[MAX_STRING_LENGTH]; argument = one_argument(argument, arg1); if (ch->pcdata->kingdom == 0) { send_to_char("Defect from what? You are not part of a kingdom!",ch); return; } if (str_cmp(arg1,"defect")) { send_to_char("If you want to defect you MUST type it twice.\n\rI.e defect defect\n\r",ch); return; } if ( !str_cmp(kingdom_table[ch->pcdata->kingdom].general,ch->name) || !str_cmp(kingdom_table[ch->pcdata->kingdom].leader,ch->name)) { send_to_char("You may not defect without first renouncing your title.\n\r",ch); return; } send_to_char("You defect from your kingdom...",ch); sprintf(buf,"%s has defected.",ch->name); do_info(ch,buf); ch->pcdata->kingdom = 0; save_char_obj(ch); save_kingdoms(); return; }
BIF_RETTYPE persistent_term_info_0(BIF_ALIST_0) { HashTable* hash_table = (HashTable *) erts_atomic_read_nob(&the_hash_table); TrapData* trap_data; Eterm res = NIL; Eterm magic_ref; Binary* mbp; magic_ref = alloc_trap_data(BIF_P); mbp = erts_magic_ref2bin(magic_ref); trap_data = ERTS_MAGIC_BIN_DATA(mbp); trap_data->table = hash_table; trap_data->idx = 0; trap_data->remaining = hash_table->num_entries; trap_data->memory = 0; res = do_info(BIF_P, trap_data); if (trap_data->remaining == 0) { BUMP_REDS(BIF_P, hash_table->num_entries); trap_data->table = NULL; /* Prevent refc decrement */ BIF_RET(res); } else { /* * Increment the ref counter to prevent an update operation (by put/2 * or erase/1) to delete this hash table. */ erts_atomic_inc_nob(&hash_table->refc); BUMP_ALL_REDS(BIF_P); BIF_TRAP2(&persistent_term_info_export, BIF_P, magic_ref, res); } }
int test_func21(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { int fd; do_info(path_name); temp = stderr; /* get next file descriptor available */ if ((fd = open(path_name, O_RDONLY)) == -1) { perror("open"); return 999; } if (close(fd) == -1) { perror("close"); return 999; } if ((fd != next_fd[0]) && (fd != next_fd[1])) { fprintf(temp, "ERROR: Expected next fd available to be %d (none used) or %d (1 used)\n", next_fd[0], next_fd[1]); fprintf(temp, " Next fd available is %d\n", fd); return 999; } return 0; }
void load_arti() { char buf[MSL]; //Right now, this will just load an arti randomly to the mud //But if you want you can make it load by the person who gets the last mkill or whatever //Zarius randomize_object(number_range(33960, 33976)); xprintf_2(buf, "#7The Gods smile down and drop an #0Artifact#n into the world!\n\r" ); do_info( NULL, buf ); }
int test_func18(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { do_info(path_name); if (ftw_integer == FTW_SLN) { visit++; return 999; } return 0; }
void handle_con_note_finish (DESCRIPTOR_DATA *d, char * argument) { char buf[MAX_STRING_LENGTH]; CHAR_DATA *ch = d->character; if (!ch->pcdata->in_progress) { d->connected = CON_PLAYING; bug ("nanny: In CON_NOTE_FINISH, but no note in progress",0); return; } switch (tolower(argument[0])) { case 'c': /* keep writing */ write_to_buffer (d,"Continuing note...\n\r",0); d->connected = CON_NOTE_TEXT; break; case 'v': /* view note so far */ if (ch->pcdata->in_progress->text) { write_to_buffer (d,GREEN "Text of your note so far:" NO_COLOR "\n\r",0); write_to_buffer (d, ch->pcdata->in_progress->text, 0); } else write_to_buffer (d,"You haven't written a thing!\n\r\n\r",0); write_to_buffer (d, szFinishPrompt, 0); write_to_buffer (d, "\n\r",0); break; case 'p': /* post note */ if (board_number(ch->pcdata->board) < 4 && is_full_name("all", ch->pcdata->in_progress->to_list)) { xprintf(buf,"A new note has been posted by %s on board %d", ch->name, board_number(ch->pcdata->board)+1); do_info(ch, buf); } finish_note (ch->pcdata->board, ch->pcdata->in_progress); write_to_buffer (d, "Note posted.\n\r",0); d->connected = CON_PLAYING; ch->pcdata->in_progress = NULL; act (BOLD GREEN "$n finishes $s note." NO_COLOR , ch, NULL, NULL, TO_ROOM); break; case 'f': write_to_buffer (d, "Note cancelled!\n\r",0); free_note (ch->pcdata->in_progress); ch->pcdata->in_progress = NULL; d->connected = CON_PLAYING; break; default: /* invalid response */ write_to_buffer (d, "Huh? Valid answers are:\n\r\n\r",0); write_to_buffer (d, szFinishPrompt, 0); write_to_buffer (d, "\n\r",0); } if (d->connected == CON_PLAYING) REMOVE_BIT(ch->extra, EXTRA_AFK); }
int test_func4(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { visit++; do_info(path_name); /* Stop traversal once directory is visited. */ if (strcmp(path_name, "./tmp/data/d777") == 0) return 999; return 0; }
void file_inf() { int ok; FILE *fp; char filename[256]; sprintf(filename,"%s.pars",this_file); ping(); if(!file_selector("Save info",filename,"*.pars*"))return; /* if(new_string("Filename: ",filename)==0)return; */ open_write_file(&fp,filename,&ok); if(!ok)return; redraw_params(); do_info(fp); fclose(fp); }
int test_func15(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { temp = stderr; do_info(path_name); if (strcmp(path_name, "./tmp/data/d666/errs") == 0) { if (ftw_integer != FTW_NS) { fprintf(temp, "ERROR: FTW_NS not passed for file in unsearchable dir\n"); return 999; } } return 0; }
int main(int argc, char **argv) { struct info_options *opts = (struct info_options *)malloc(sizeof(struct info_options)); int client_sock; parse_options(argc, argv, opts); client_sock = unix_client_connect(opts->unix_path, 10); if (client_sock < 0) { fprintf(stderr, "cannot open client socket (errno %d)\n", errno); return 1; } do_info(opts, client_sock); return 0; }
void do_renounce(CHAR_DATA *ch, char *argument) { char arg1[MAX_STRING_LENGTH]; char buf[MAX_STRING_LENGTH]; argument = one_argument(argument, arg1); if (ch->pcdata->kingdom == 0) { send_to_char("Renounce what? You are not part of a kingdom!",ch); return; } if (str_cmp(arg1,"renounce")) { send_to_char("If you want to renounce your title you MUST type it twice.\n\rI.e renounce renounce\n\r",ch); return; } if ( str_cmp(kingdom_table[ch->pcdata->kingdom].general,ch->name) && str_cmp(kingdom_table[ch->pcdata->kingdom].leader,ch->name)) { send_to_char("You may not renounce without first possessing a title.\n\r",ch); return; } if ( !str_cmp(kingdom_table[ch->pcdata->kingdom].general,ch->name) ) { free_string(kingdom_table[ch->pcdata->kingdom].general); kingdom_table[ch->pcdata->kingdom].general = str_dup("No One!"); } else if( !str_cmp(kingdom_table[ch->pcdata->kingdom].leader,ch->name) ) { free_string(kingdom_table[ch->pcdata->kingdom].leader); kingdom_table[ch->pcdata->kingdom].leader = str_dup("No One!"); } send_to_char("You renounce your title...",ch); sprintf(buf,"%s has renounced their title..",ch->name); do_info(ch,buf); save_char_obj(ch); save_kingdoms(); return; }
gint main (gint argc, gchar **argv) { if (argc < 2) do_usage (argv[0]); camel_init (NULL, 0); if (!strcmp(argv[1], "compress")) return do_compress (argc, argv); else if (!strcmp(argv[1], "dump")) return do_dump (argc, argv); else if (!strcmp(argv[1], "info")) return do_info (argc, argv); else if (!strcmp(argv[1], "check")) return do_check (argc, argv); else if (!strcmp(argv[1], "perf")) return do_perf (argc, argv); do_usage (argv[0]); return 1; }
int test_func23(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { visit++; temp = stderr; do_info(path_name); if (ftw_integer == FTW_F) { #ifdef DEBUG fprintf(temp, "INFO: fn() returning non-zero after traversal of %d objects\n", visit); #endif return 999; } return 0; }
void do_addchange(CHAR_DATA *ch, char *argument ) { CHANGE_DATA * new_table; char buf[MSL]; if ( IS_NPC( ch ) ) return; if ( argument[0] == '\0' ) { send_to_char( "Syntax: Addchange ChangeString\n\r", ch ); send_to_char( "Type '#Rchanges#n' to view the list.#n\n\r", ch ); return; } maxChanges++; totChanges++; new_table = realloc( changes_table, sizeof( CHANGE_DATA ) *(maxChanges+1) ); if (!new_table) /* realloc failed */ { send_to_char ("Memory allocation failed. Brace for impact.\n\r",ch); return; } changes_table = new_table; changes_table[maxChanges-1].change = str_dup( argument ); changes_table[maxChanges-1].coder = str_dup( ch->name ); changes_table[maxChanges-1].date = str_dup(current_date()); changes_table[maxChanges-1].mudtime = current_time; send_to_char("Changes Created.\n\r",ch); send_to_char("Type 'changes' to see the changes.\n\r",ch); sprintf(buf,"New Change (##%d) added to the mud, type '#Cchanges#n' to see it.",totChanges); do_info(ch,buf); save_changes(); return; }
void do_addchange( CHAR_DATA * ch, char *argument ) { CHANGE_DATA *new_table; if( IS_NPC( ch ) ) return; if( argument[0] == '\0' ) { send_to_char( "Syntax: Addchange ChangeString\r\n", ch ); send_to_char( "&cType '&cchanges&c' to view the list.&d\r\n", ch ); return; } maxChanges++; new_table = realloc( changes_table, sizeof( CHANGE_DATA ) * ( maxChanges + 1 ) ); if( !new_table ) /* realloc failed */ { send_to_char( "Memory allocation failed. Brace for impact.\r\n", ch ); return; } changes_table = new_table; changes_table[maxChanges - 1].change = str_dup( argument ); changes_table[maxChanges - 1].coder = str_dup( ch->name ); changes_table[maxChanges - 1].date = str_dup( current_date( ) ); changes_table[maxChanges - 1].mudtime = current_time; send_to_char( "Changes Created.\r\n", ch ); send_to_char( "Type 'changes' to see the changes.\r\n", ch ); do_info( ch, " &zNew Change added to the mud, type '&Cchanges&z' to see it&z" ); save_changes( ); return; }
int test_func19(const char *path_name, const struct stat64 *stat_pointer, int ftw_integer, struct FTW *ftwp) { do_info(path_name); temp = stderr; visit++; if (ftw_integer == FTW_DNR) { if (strcmp(path_name, "./tmp/data/d333") == 0) { return 0; } else { fprintf(temp, "ERROR: When FTW_DNR is passed to the function fn the\n"); fprintf(temp, " descendants of the directory should not have\n"); fprintf(temp, " Been processed\n"); return 999; } } else { fprintf(temp, "ERROR: Directory has read permission or FTW_DNR was not passed to fn\n"); return 999; } }
int main (int argc, char **argv) { int exit = 0; char *buffer = g_new (char, 1024) ; GIOChannel *ioc; guint watch_id = 0; GOptionContext *ctx = NULL; GError *error = NULL; /* default to interactive on a terminal */ interactive = isatty (0); ctx = g_option_context_new("test-vfs"); g_option_context_add_main_entries(ctx, options, NULL); if (!g_option_context_parse(ctx, &argc, &argv, &error)) { g_printerr("main: %s\n", error->message); g_error_free(error); g_option_context_free(ctx); return 1; } g_option_context_free(ctx); files = g_hash_table_new (g_str_hash, g_str_equal); if (noninteractive) interactive = FALSE; if (interactive) vfserr = stderr; else vfserr = stdout; if (!mate_vfs_init ()) { fprintf (vfserr, "Cannot initialize mate-vfs.\n"); return 1; } mate_vfs_module_callback_push (MATE_VFS_MODULE_CALLBACK_AUTHENTICATION, authentication_callback, NULL, NULL); if (argc == 1) cur_dir = g_get_current_dir (); else cur_dir = g_strdup(argv[1]); if (cur_dir && !G_IS_DIR_SEPARATOR (cur_dir [strlen (cur_dir) - 1])) cur_dir = g_strconcat (cur_dir, G_DIR_SEPARATOR_S, NULL); if (interactive == TRUE) { main_loop = g_main_loop_new (NULL, TRUE); ioc = g_io_channel_unix_new (0 /* stdin */); g_io_channel_set_encoding (ioc, NULL, NULL); g_io_channel_set_buffered (ioc, FALSE); watch_id = g_io_add_watch (ioc, G_IO_IN | G_IO_HUP | G_IO_ERR, callback, buffer); g_io_channel_unref (ioc); } while (!exit) { char *ptr; if (interactive) { fprintf (stdout,"\n%s > ", cur_dir); fflush (stdout); strcpy (buffer, ""); g_main_loop_run (main_loop); } else { /* In non-interactive mode we just do this evil * thingie */ buffer[0] = '\0'; fgets (buffer, 1023, stdin); if (!buffer [0]) { exit = 1; continue; } } if (!buffer || buffer [0] == '#') continue; arg_data = g_strsplit (g_strchomp (buffer), delim, -1); arg_cur = 0; if ((!arg_data || !arg_data[0]) && interactive) continue; if (!interactive) printf ("Command : '%s'\n", arg_data [0]); ptr = arg_data[arg_cur++]; if (!ptr) continue; if (g_ascii_strcasecmp (ptr, "ls") == 0) do_ls (); else if (g_ascii_strcasecmp (ptr, "cd") == 0) do_cd (); else if (g_ascii_strcasecmp (ptr, "dump") == 0) do_dump (); else if (g_ascii_strcasecmp (ptr, "type") == 0 || g_ascii_strcasecmp (ptr, "cat") == 0) do_cat (); else if (g_ascii_strcasecmp (ptr, "cp") == 0) do_cp (); else if (g_ascii_strcasecmp (ptr, "rm") == 0) do_rm (); else if (g_ascii_strcasecmp (ptr, "mkdir") == 0) do_mkdir (); else if (g_ascii_strcasecmp (ptr, "rmdir") == 0) do_rmdir (); else if (g_ascii_strcasecmp (ptr, "mv") == 0) do_mv (); else if (g_ascii_strcasecmp (ptr, "info") == 0 || g_ascii_strcasecmp (ptr, "stat") == 0) do_info (); else if (g_ascii_strcasecmp (ptr, "findtrash") == 0) do_findtrash (); else if (g_ascii_strcasecmp (ptr, "ssl") == 0) do_ssl (); else if (g_ascii_strcasecmp (ptr, "sync") == 0) fprintf (vfserr, "a shell is like a boat, it lists or syncs (RMS)\n"); else if (g_ascii_strcasecmp (ptr,"help") == 0 || g_ascii_strcasecmp (ptr,"?") == 0 || g_ascii_strcasecmp (ptr,"info") == 0 || g_ascii_strcasecmp (ptr,"man") == 0) list_commands (); else if (g_ascii_strcasecmp (ptr,"exit") == 0 || g_ascii_strcasecmp (ptr,"quit") == 0 || g_ascii_strcasecmp (ptr,"q") == 0 || g_ascii_strcasecmp (ptr,"bye") == 0) exit = 1; /* File ops */ else if (g_ascii_strcasecmp (ptr, "open") == 0) do_open (); else if (g_ascii_strcasecmp (ptr, "create") == 0) do_create (); else if (g_ascii_strcasecmp (ptr, "close") == 0) do_close (); else if (g_ascii_strcasecmp (ptr, "handleinfo") == 0) do_handleinfo (); else if (g_ascii_strcasecmp (ptr, "read") == 0) do_read (); else if (g_ascii_strcasecmp (ptr, "seek") == 0) do_seek (); else fprintf (vfserr, "Unknown command '%s'", ptr); g_strfreev (arg_data); arg_data = NULL; } if (interactive) { g_source_remove (watch_id); g_main_loop_unref (main_loop); main_loop = NULL; } g_free (buffer); g_free (cur_dir); close_files (); return 0; }
void ReplicationOptimizer::notifyDownContact(NodeRef node) { if (utilFunction) { utilFunction->notifyDownContact(node); } string neighbor_id = Node::idString(node); { node_map_t::iterator it = node_map.find(neighbor_id); if (it == node_map.end()) { HAGGLE_ERR("Node not in data structure.\n"); return; } node_map.erase(it); } neighbor_node_id_map_t::iterator it = utils.find(neighbor_id); if (it == utils.end()) { // no data objects? if (dobjs.size() != 0) { errorCount++; HAGGLE_ERR("Missing utility for <node, data object> pairs.\n"); } return; } for (; it != utils.end() && (*it).first == neighbor_id; it++) { ReplicationDataObjectUtilityMetadataRef do_info((*it).second); // CBMEN, HL, Begin meta_map_t::iterator mit = meta.find(getKey(do_info->getId(), do_info->getNodeId())); if (mit != meta.end()) { meta.erase(mit); } if (!do_info) { errorCount++; HAGGLE_ERR("NULL metadata.\n"); continue; } dobj_id_map_t::iterator itt = dobjs.find(do_info->getId()); List<string> toErase; for (; itt !=dobjs.end() && (*itt).first == do_info->getId(); itt++) { if ((*itt).second.getObj() == do_info.getObj()) { toErase.push_back((*itt).first); } } for (List<string>::iterator eit = toErase.begin(); eit != toErase.end(); eit++) { itt = dobjs.find(*eit); if (itt != dobjs.end()) { dobjs.erase(itt); } } // CBMEN, HL, End } it = utils.find(neighbor_id); while (it != utils.end()) { utils.erase(it); it = utils.find(neighbor_id); } }
void ReplicationOptimizer::notifyDelete(DataObjectRef dObj) { if (utilFunction) { utilFunction->notifyDelete(dObj); } string dobj_id = DataObject::idString(dObj); { dobj_id_map_t::iterator it = dobjs.find(dobj_id); if (it == dobjs.end()) { errorCount++; HAGGLE_ERR("Data object missing: %s\n", dobj_id.c_str()); return; } dobjs.erase(it); } dobj_id_map_t::iterator it = dobjs.find(dobj_id); if (it == dobjs.end()) { // no nodes? if (utils.size() != 0) { errorCount++; HAGGLE_ERR("Missing utility for <node, data object> pairs.\n"); } return; } // go through the data object utility states and remove them from // all the data structures for (; (it != dobjs.end()) && ((*it).first == dobj_id); it++) { ReplicationDataObjectUtilityMetadataRef do_info((*it).second); if (!do_info) { errorCount++; HAGGLE_ERR("NULL metadata.\n"); continue; } // CBMEN, HL, Begin meta_map_t::iterator mit = meta.find(getKey(do_info->getId(), do_info->getNodeId())); if (mit != meta.end()) { meta.erase(mit); } neighbor_node_id_map_t::iterator itt = utils.find(do_info->getNodeId()); while ((itt != utils.end()) && ((*itt).first == do_info->getNodeId())) { while ((itt != utils.end()) && ((*itt).second.getObj() != do_info.getObj())) { itt++; } if (itt == utils.end()) { break; } if ((*itt).second.getObj() == do_info.getObj()) { utils.erase(itt); itt = utils.find(do_info->getNodeId()); } else { break; } } // CBMEN, HL, End } // CBMEN, HL, Begin it = dobjs.find(dobj_id); while (it != dobjs.end()) { dobjs.erase(it); it = dobjs.find(dobj_id); } DO_map_t::iterator dit = do_map.find(dobj_id); if (dit != do_map.end()) { do_map.erase(dit); } // CBMEN, HL, End }
int main(int argc,char **argv) { char *action; const char *err; unsigned int i; int act = AC_NONE; /* desired action */ unsigned int actlen = 0;/* str_len of above */ (void) umask(022); sig_pipeignore(); when = now(); getconfopt(argc,argv,options,1,&dir); initsub(0); sender = get_sender(); if (!sender) die_sender(); action = env_get("DEFAULT"); if (!action) strerr_die2x(100,FATAL,MSG(ERR_NODEFAULT)); if (!*sender) strerr_die2x(100,FATAL,MSG(ERR_BOUNCE)); if (!sender[str_chr(sender,'@')]) strerr_die2x(100,FATAL,MSG(ERR_ANONYMOUS)); if (str_equal(sender,"#@[]")) strerr_die2x(100,FATAL,MSG(ERR_BOUNCE)); action = set_workdir(action); stralloc_copys(&target,sender); if (action[0]) { i = str_chr(action,'-'); if (action[i]) { action[i] = 0; stralloc_copys(&target,action + i + 1); i = byte_rchr(target.s,target.len,'='); if (i < target.len) target.s[i] = '@'; } } stralloc_0(&target); set_cptarget(target.s); /* for copy() */ make_verptarget(); act = get_act_ismod(action,&actlen); stralloc_copy(&from,&outlocal); stralloc_cats(&from,"-return-@"); stralloc_cat(&from,&outhost); stralloc_0(&from); if (qmail_open(&qq) == -1) strerr_die2sys(111,FATAL,MSG(ERR_QMAIL_QUEUE)); msg_headers(act); if (act == AC_SUBSCRIBE) do_subscribe(action); else if (act == AC_SC) do_sc(action); else if (str_start(action,ACTION_RC)) do_rc_tc(action,ACTION_RC); else if(str_start(action,ACTION_TC)) do_rc_tc(action,ACTION_TC); else if (act == AC_UNSUBSCRIBE) do_unsubscribe(action); else if (str_start(action,ACTION_UC)) do_uc(action); else if (str_start(action,ACTION_VC)) do_vc_wc(action,ACTION_VC); else if (str_start(action,ACTION_WC)) do_vc_wc(action,ACTION_WC); else if (act == AC_LIST || act == AC_LISTN) do_list(act); else if (act == AC_LOG) do_log(action,actlen); else if (act == AC_EDIT) do_edit(action); else if (str_start(action,ACTION_ED)) do_ed(action); else if (act == AC_GET) do_get(action); else if (case_starts(action,ACTION_QUERY) || case_starts(action,ALT_QUERY)) do_query(); else if (case_starts(action,ACTION_INFO) || case_starts(action,ALT_INFO)) do_info(); else if (case_starts(action,ACTION_FAQ) || case_starts(action,ALT_FAQ)) do_faq(); else if (ismod && (act == AC_HELP)) do_mod_help(); else do_help(); err = qmail_close(&qq); closesub(); if (*err != '\0') strerr_die4x(111,FATAL,MSG(ERR_TMP_QMAIL_QUEUE),": ",err + 1); strnum[fmt_ulong(strnum,qmail_qp(&qq))] = 0; strerr_die3x(0,INFO,"qp ",strnum); }
int netstat_main(int argc, char **argv) { enum { OPT_extended = 0x4, OPT_showroute = 0x100, }; unsigned opt; #if ENABLE_FEATURE_IPV6 int inet = 1; int inet6 = 1; #else enum { inet = 1, inet6 = 0 }; #endif /* Option string must match NETSTAT_xxx constants */ opt = getopt32(argc, argv, "laentuwxr"); if (opt & 0x1) { // -l flags &= ~NETSTAT_CONNECTED; flags |= NETSTAT_LISTENING; } if (opt & 0x2) flags |= NETSTAT_LISTENING | NETSTAT_CONNECTED; // -a //if (opt & 0x4) // -e if (opt & 0x8) flags |= NETSTAT_NUMERIC; // -n //if (opt & 0x10) // -t: NETSTAT_TCP //if (opt & 0x20) // -u: NETSTAT_UDP //if (opt & 0x40) // -w: NETSTAT_RAW //if (opt & 0x80) // -x: NETSTAT_UNIX if (opt & OPT_showroute) { // -r #if ENABLE_ROUTE bb_displayroutes(flags & NETSTAT_NUMERIC, !(opt & OPT_extended)); return 0; #else bb_error_msg_and_die("-r (display routing table) is not compiled in"); #endif } opt &= NETSTAT_ALLPROTO; if (opt) { flags &= ~NETSTAT_ALLPROTO; flags |= opt; } if (flags & (NETSTAT_TCP|NETSTAT_UDP|NETSTAT_RAW)) { printf("Active Internet connections "); /* xxx */ if ((flags & (NETSTAT_LISTENING|NETSTAT_CONNECTED)) == (NETSTAT_LISTENING|NETSTAT_CONNECTED)) printf("(servers and established)"); else if (flags & NETSTAT_LISTENING) printf("(only servers)"); else printf("(w/o servers)"); printf("\nProto Recv-Q Send-Q Local Address Foreign Address State\n"); } if (inet && flags & NETSTAT_TCP) do_info(_PATH_PROCNET_TCP, "AF INET (tcp)", tcp_do_one); #if ENABLE_FEATURE_IPV6 if (inet6 && flags & NETSTAT_TCP) do_info(_PATH_PROCNET_TCP6, "AF INET6 (tcp)", tcp_do_one); #endif if (inet && flags & NETSTAT_UDP) do_info(_PATH_PROCNET_UDP, "AF INET (udp)", udp_do_one); #if ENABLE_FEATURE_IPV6 if (inet6 && flags & NETSTAT_UDP) do_info(_PATH_PROCNET_UDP6, "AF INET6 (udp)", udp_do_one); #endif if (inet && flags & NETSTAT_RAW) do_info(_PATH_PROCNET_RAW, "AF INET (raw)", raw_do_one); #if ENABLE_FEATURE_IPV6 if (inet6 && flags & NETSTAT_RAW) do_info(_PATH_PROCNET_RAW6, "AF INET6 (raw)", raw_do_one); #endif if (flags & NETSTAT_UNIX) { printf("Active UNIX domain sockets "); if ((flags & (NETSTAT_LISTENING|NETSTAT_CONNECTED)) == (NETSTAT_LISTENING|NETSTAT_CONNECTED)) printf("(servers and established)"); else if (flags & NETSTAT_LISTENING) printf("(only servers)"); else printf("(w/o servers)"); printf("\nProto RefCnt Flags Type State I-Node Path\n"); do_info(_PATH_PROCNET_UNIX, "AF UNIX", unix_do_one); } return 0; }