FACT++  1.0
dim_get_service.c
Go to the documentation of this file.
1 #include <ctype.h>
2 #include <stdio.h>
3 #include <dic.h>
4 
5 int no_link = 0x0afefead;
6 int version;
7 
8 char str[132];
9 int type, mode;
10 int received = 0;
11 
12 void rout(tag, buffer, size)
13 int *tag, *size;
14 int *buffer;
15 {
16 void print_service();
17 
18  if(tag){}
19  if((*size == 4 ) && (*buffer == no_link))
20  {
21  printf("Service %s Not Available\n", str);
22  }
23  else
24  {
25  printf("Service %s Contents :\n", str);
26  print_service(buffer, ((*size - 1)/4) + 1);
27  }
28  fflush(stdout);
29  received = 1;
30 #ifdef WIN32
31  wake_up();
32 #endif
33 }
34 
35 int main(argc,argv)
36 int argc;
37 char **argv;
38 {
39 
40  if(argc < 2)
41  {
42  printf("Service Name > ");
43  fflush(stdout);
44  scanf("%s", str);
45  }
46  else
47  {
48  sprintf(str,"%s",argv[1]);
49  }
51  while(!received)
52  dim_wait();
53  return(1);
54 }
55 
57 int *buff, size;
58 {
59 int i,j;
60 char *asc;
61 int last[4];
62 
63  asc = (char *)buff;
64  for( i = 0; i < size; i++)
65  {
66  if(!(i%4))
67  printf("H");
68  printf(" %08X ",buff[i]);
69  last[i%4] = buff[i];
70  if(i%4 == 3)
71  {
72  printf(" '");
73  for(j = 0; j <16; j++)
74  {
75  if(isprint(asc[j]))
76  printf("%c",asc[j]);
77  else
78  printf(".");
79  }
80  printf("'\n");
81  for(j = 0; j <4; j++)
82  {
83  if(j == 0)
84  printf("D");
85  printf("%11d ",last[j]);
86  }
87  printf("\n");
88  asc = (char *)&buff[i+1];
89  }
90  }
91  if(i%4)
92  {
93 
94  for(j = 0; j < 4 - (i%4); j++)
95  printf(" ");
96  printf(" '");
97  for(j = 0; j < (i%4) * 4; j++)
98  {
99  if(isprint(asc[j]))
100  printf("%c",asc[j]);
101  else
102  printf(".");
103  }
104  printf("'\n");
105  for(j = 0; j < (i%4); j++)
106  {
107  if(j == 0)
108  printf("D");
109  printf("%11d ",last[j]);
110  }
111  printf("\n");
112  }
113 }
int main(int argc, char **argv)
int received
static int wake_up
Definition: dns.c:81
unsigned dic_info_service(char *serv_name, int req_type, int req_timeout, void *serv_address, int serv_size, void(*usr_routine)(), dim_long tag, void *fill_addr, int fill_size)
Definition: dic.c:601
int dim_wait(void)
Definition: dim_thr.c:409
int mode
int i
Definition: db_dim_client.c:21
int no_link
int type
int buffer[BUFFSIZE]
Definition: db_dim_client.c:14
int version
int size
Definition: db_dim_server.c:17
void print_service(int *buff, int size)
int buff[BUFFSIZE]
Definition: db_dim_client.c:15
char str[132]
#define ONCE_ONLY
Definition: dim_common.h:7
sprintf(name1,"NewService%d", i)
void rout(int *tag, int *buffer, int *size)