static int my_xml_scan(MY_XML_PARSER *p,MY_XML_ATTR *a) { int lex; for (; ( p->cur < p->end) && my_xml_is_space(p->cur[0]) ; p->cur++); if (p->cur >= p->end) { a->beg=p->end; a->end=p->end; lex=MY_XML_EOF; goto ret; } a->beg=p->cur; a->end=p->cur; if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("<!--"))) { for (; p->cur < p->end; p->cur++) { if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("-->"))) { p->cur+= 3; break; } } a->end=p->cur; lex=MY_XML_COMMENT; } else if (!my_xml_parser_prefix_cmp(p, C_STRING_WITH_LEN("<![CDATA["))) { p->cur+= 9; for (; p->cur < p->end - 2 ; p->cur++) { if (p->cur[0] == ']' && p->cur[1] == ']' && p->cur[2] == '>') { p->cur+= 3; a->end= p->cur; break; } } lex= MY_XML_CDATA; } else if (strchr("?=/<>!",p->cur[0])) { p->cur++; a->end=p->cur; lex=a->beg[0]; } else if ( (p->cur[0] == '"') || (p->cur[0] == '\'') ) { /* "string" or 'string' found. Scan until the closing quote/doublequote, or until the END-OF-INPUT. */ p->cur++; for (; ( p->cur < p->end ) && (p->cur[0] != a->beg[0]); p->cur++) {} a->end=p->cur; if (p->cur < p->end) /* Closing quote or doublequote has been found */ p->cur++; a->beg++; if (!(p->flags & MY_XML_FLAG_SKIP_TEXT_NORMALIZATION)) my_xml_norm_text(a); lex=MY_XML_STRING; } else if (my_xml_is_id0(p->cur[0])) { p->cur++; while (p->cur < p->end && my_xml_is_id1(p->cur[0])) p->cur++; a->end=p->cur; my_xml_norm_text(a); lex=MY_XML_IDENT; } else lex= MY_XML_UNKNOWN; #if 0 printf("LEX=%s[%d]\n",lex2str(lex),a->end-a->beg); #endif ret: return lex; }
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #include <stdio.h> #include <m_ctype.h> #include <mysql/plugin.h> #include <mysql/plugin_audit.h> #include <my_sys.h> #include <mysqld_error.h> #include "my_compiler.h" /** Event strings. */ LEX_CSTRING event_names[][6] = { /** MYSQL_AUDIT_GENERAL_CLASS */ { { C_STRING_WITH_LEN("MYSQL_AUDIT_GENERAL_LOG") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_GENERAL_ERROR") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_GENERAL_RESULT") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_GENERAL_STATUS") }, }, /** MYSQL_AUDIT_CONNECTION_CLASS */ { { C_STRING_WITH_LEN("MYSQL_AUDIT_CONNECTION_CONNECT") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_CONNECTION_DISCONNECT") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_CONNECTION_CHANGE_USER") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_CONNECTION_PRE_AUTHENTICATE") }, }, /** MYSQL_AUDIT_PARSE_CLASS */ { { C_STRING_WITH_LEN("MYSQL_AUDIT_PARSE_PREPARSE") }, { C_STRING_WITH_LEN("MYSQL_AUDIT_PARSE_POSTPARSE") }, }, /** MYSQL_AUDIT_AUTHORIZATION_CLASS */