Fix the termination issue
[framework/connectivity/data-router.git] / src / dr-parser.c
1 /*
2  * Data-Router
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact:  Hocheol Seo <hocheol.seo@samsung.com>
7  *               Injun Yang <injun.yang@samsung.com>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *              http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  */
22
23
24 #include <time.h>
25 #include "dr-main.h"
26 #include "dr-parser.h"
27 #include "dr-common.h"
28 #include "dr-usb.h"
29
30
31 typedef struct {
32         const char *at_cmd;
33         int token_type;
34 } dr_at_cmd_t;
35
36 const dr_at_cmd_t dr_at_cmds[] = {
37         {"ATZ", ATZ_TOKEN},
38         {"AT+OSPSERIALOPEN", AT_OSP_TOKEN},
39         {"", OTHER_TOKEN},
40 };
41
42
43 int _get_at_cmd_type(char *buf)
44 {
45         if (buf == NULL) {
46                 return TOKEN_ERROR;
47         }
48
49         int idx;
50
51         for (idx = 0; dr_at_cmds[idx].at_cmd[0] != '\0'; idx++) {
52                 if (!g_ascii_strncasecmp
53                     ((const gchar *)buf, (const gchar *)dr_at_cmds[idx].at_cmd,
54                      strlen(dr_at_cmds[idx].at_cmd))) {
55                         DBG("Found %s\n", dr_at_cmds[idx].at_cmd);
56                         buf = buf + strlen(dr_at_cmds[idx].at_cmd);
57                         return dr_at_cmds[idx].token_type;
58                 }
59         }
60
61         return OTHER_TOKEN;
62 }
63