FACT++  1.0
void do_got_service_list ( SERVER servp)

Definition at line 2857 of file did.c.

References create_str(), Curr_service_list_id, delete_str(), Memory::free(), i, id, Memory::malloc(), MAX_NAME, DNS_SERVER_INFO::n_services, DNS_SERVICE_INFO::name, item::server, item::service_ptr, set_something(), and DNS_SERVICE_INFO::type.

Referenced by got_service_list(), and main().

2858 {
2859 char cmd_str[256], svc_str[256];
2860 DNS_SERVER_INFO *ptr;
2861 DNS_SERVICE_INFO *service_ptr;
2862 Widget id;
2863 char *curr_str, max_str[MAX_NAME], *sptr;
2864 DID_SLOT *service_list;
2865 int i, j, curr_index = 0, n_services;
2866 XmString xstr;
2867 void delete_str();
2868 
2869  ptr = &servp->server;
2870  id = Curr_service_list_id;
2871 
2872  XmListDeleteAllItems(id);
2873 
2874  strcpy(cmd_str,"CMD: ");
2875  strcpy(svc_str,"SVC: ");
2876 
2877  service_ptr = servp->service_ptr;
2878  service_list = (DID_SLOT *)malloc((size_t)(ptr->n_services * MAX_NAME));
2879  n_services = ptr->n_services;
2880 
2881  for(i=0;i<n_services; i++)
2882  {
2883  strcpy(service_list[i],service_ptr->name);
2884  service_ptr++;
2885  }
2886  strcpy(max_str,"zzzzzzzzzzzzzzzzzzzzzzzzzzzz");
2887  for(i=0;i<n_services; i++)
2888  {
2889  curr_str = max_str;
2890  for(j=0;j<n_services; j++)
2891  {
2892  sptr = service_list[j];
2893  if(!*sptr)
2894  continue;
2895 
2896  if(strcmp(sptr,curr_str) < 0)
2897  {
2898  curr_str = sptr;
2899  curr_index = j;
2900  }
2901  }
2902  service_list[curr_index][0] = '\0';
2903  service_ptr = &(servp->service_ptr[curr_index]);
2904  if(service_ptr->type)
2905  {
2906  strcpy(&cmd_str[5],service_ptr->name);
2907  xstr = create_str(cmd_str);
2908  XmListAddItem(id,xstr,i+1);
2909  delete_str(xstr);
2910  }
2911  else
2912  {
2913  strcpy(&svc_str[5],service_ptr->name);
2914  xstr = create_str(svc_str);
2915  XmListAddItem(id,xstr,i+1);
2916  delete_str(xstr);
2917  }
2918  }
2919  free(service_list);
2920 
2921  set_something(id,XmNlistItemCount,i);
2922  set_something(id,XmNlistVisibleItemCount,(i < 20) ? i : 20);
2923 }
#define MAX_NAME
Definition: dim.h:182
int i
Definition: db_dim_client.c:21
Widget Curr_service_list_id
Definition: did.c:27
void * malloc()
Definition: EventBuilder.cc:99
char id[4]
Definition: FITS.h:71
DNS_SERVICE_INFO * service_ptr
Definition: did.h:45
void set_something()
char name[MAX_NAME]
Definition: dim.h:331
char DID_SLOT[MAX_NAME]
Definition: did.c:2833
DNS_SERVER_INFO server
Definition: did.h:44
void delete_str(XmString str)
Definition: dui_util.c:55
void free(void *mem)
XmString create_str()
int n_services
Definition: dim.h:341

+ Here is the call graph for this function:

+ Here is the caller graph for this function: