Bläddra i källkod

上传文件至 'cgi'

hanzhengyi 4 år sedan
förälder
incheckning
ad50cb8ad0
5 ändrade filer med 860 tillägg och 0 borttagningar
  1. 613 0
      cgi/Makefile
  2. 21 0
      cgi/cgi.pro
  3. BIN
      cgi/demo
  4. BIN
      cgi/demo2.cgi
  5. 226 0
      cgi/test.cpp

+ 613 - 0
cgi/Makefile

@@ -0,0 +1,613 @@
+#############################################################################
+# Makefile for building: demo
+# Generated by qmake (3.1) (Qt 5.9.7)
+# Project:  cgi.pro
+# Template: app
+# Command: /usr/bin/qmake-qt5 -o Makefile cgi.pro -spec linux-g++
+#############################################################################
+
+MAKEFILE      = Makefile
+
+####### Compiler, tools and options
+
+CC            = gcc
+CXX           = g++
+DEFINES       = -DQT_NO_DEBUG -DQT_CORE_LIB
+CFLAGS        = -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
+CXXFLAGS      = -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC $(DEFINES)
+INCPATH       = -I. -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -I. -I/usr/lib64/qt5/mkspecs/linux-g++
+QMAKE         = /usr/bin/qmake-qt5
+DEL_FILE      = rm -f
+CHK_DIR_EXISTS= test -d
+MKDIR         = mkdir -p
+COPY          = cp -f
+COPY_FILE     = cp -f
+COPY_DIR      = cp -f -R
+INSTALL_FILE  = install -m 644 -p
+INSTALL_PROGRAM = install -m 755 -p
+INSTALL_DIR   = cp -f -R
+QINSTALL      = /usr/bin/qmake-qt5 -install qinstall
+QINSTALL_PROGRAM = /usr/bin/qmake-qt5 -install qinstall -exe
+DEL_FILE      = rm -f
+SYMLINK       = ln -f -s
+DEL_DIR       = rmdir
+MOVE          = mv -f
+TAR           = tar -cf
+COMPRESS      = gzip -9f
+DISTNAME      = demo1.0.0
+DISTDIR = /home/yt/Qt/YtCam.20201222/YtCam/cgi/.tmp/demo1.0.0
+LINK          = g++
+LFLAGS        = -Wl,-O1 -Wl,-z,relro
+LIBS          = $(SUBLIBS) -lfcgi -ljson-c -lQt5Core -lpthread 
+AR            = ar cqs
+RANLIB        = 
+SED           = sed
+STRIP         = 
+
+####### Output directory
+
+OBJECTS_DIR   = ./
+
+####### Files
+
+SOURCES       = test.cpp 
+OBJECTS       = test.o
+DIST          = /usr/lib64/qt5/mkspecs/features/spec_pre.prf \
+		/usr/lib64/qt5/mkspecs/common/unix.conf \
+		/usr/lib64/qt5/mkspecs/common/linux.conf \
+		/usr/lib64/qt5/mkspecs/common/sanitize.conf \
+		/usr/lib64/qt5/mkspecs/common/gcc-base.conf \
+		/usr/lib64/qt5/mkspecs/common/gcc-base-unix.conf \
+		/usr/lib64/qt5/mkspecs/common/g++-base.conf \
+		/usr/lib64/qt5/mkspecs/common/g++-unix.conf \
+		/usr/lib64/qt5/mkspecs/qconfig.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3danimation.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dcore.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dextras.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dinput.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dlogic.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquick.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3drender.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3drender_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_core.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_core_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_designer.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_designer_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_designercomponents_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_enginio.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_enginio_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_gui.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_gui_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_help.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_help_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_location.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_location_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_network.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_network_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_packetprotocol_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qml.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qml_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldebug_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quick.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickcontrols2.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_script.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_script_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialbus.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialbus_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sql.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_svg.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_svg_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xml.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+		/usr/lib64/qt5/mkspecs/features/qt_functions.prf \
+		/usr/lib64/qt5/mkspecs/features/qt_config.prf \
+		/usr/lib64/qt5/mkspecs/linux-g++/qmake.conf \
+		/usr/lib64/qt5/mkspecs/features/spec_post.prf \
+		../.qmake.stash \
+		/usr/lib64/qt5/mkspecs/features/exclusive_builds.prf \
+		/usr/lib64/qt5/mkspecs/features/toolchain.prf \
+		/usr/lib64/qt5/mkspecs/features/default_pre.prf \
+		/usr/lib64/qt5/mkspecs/features/resolve_config.prf \
+		/usr/lib64/qt5/mkspecs/features/default_post.prf \
+		/usr/lib64/qt5/mkspecs/features/warn_on.prf \
+		/usr/lib64/qt5/mkspecs/features/qt.prf \
+		/usr/lib64/qt5/mkspecs/features/resources.prf \
+		/usr/lib64/qt5/mkspecs/features/moc.prf \
+		/usr/lib64/qt5/mkspecs/features/unix/thread.prf \
+		/usr/lib64/qt5/mkspecs/features/qmake_use.prf \
+		/usr/lib64/qt5/mkspecs/features/file_copies.prf \
+		/usr/lib64/qt5/mkspecs/features/testcase_targets.prf \
+		/usr/lib64/qt5/mkspecs/features/exceptions.prf \
+		/usr/lib64/qt5/mkspecs/features/yacc.prf \
+		/usr/lib64/qt5/mkspecs/features/lex.prf \
+		cgi.pro  test.cpp
+QMAKE_TARGET  = demo
+DESTDIR       = 
+TARGET        = demo
+
+
+first: all
+####### Build rules
+
+$(TARGET):  $(OBJECTS)  
+	$(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: cgi.pro /usr/lib64/qt5/mkspecs/linux-g++/qmake.conf /usr/lib64/qt5/mkspecs/features/spec_pre.prf \
+		/usr/lib64/qt5/mkspecs/common/unix.conf \
+		/usr/lib64/qt5/mkspecs/common/linux.conf \
+		/usr/lib64/qt5/mkspecs/common/sanitize.conf \
+		/usr/lib64/qt5/mkspecs/common/gcc-base.conf \
+		/usr/lib64/qt5/mkspecs/common/gcc-base-unix.conf \
+		/usr/lib64/qt5/mkspecs/common/g++-base.conf \
+		/usr/lib64/qt5/mkspecs/common/g++-unix.conf \
+		/usr/lib64/qt5/mkspecs/qconfig.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3danimation.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3danimation_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dcore.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dcore_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dextras.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dextras_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dinput.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dinput_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dlogic.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquick.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquick_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickextras.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickinput.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickrender.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3drender.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_3drender_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_core.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_core_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_designer.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_designer_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_designercomponents_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_egl_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_enginio.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_enginio_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_fb_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_glx_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_gui.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_gui_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_help.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_help_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_input_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_kms_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_location.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_location_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_network.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_network_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_packetprotocol_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qml.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qml_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldebug_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quick.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickcontrols2.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickcontrols2_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quicktemplates2_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_script.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_script_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialbus.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialbus_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_service_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sql.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_svg.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_svg_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_theme_support_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_uiplugin.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xml.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns.pri \
+		/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns_private.pri \
+		/usr/lib64/qt5/mkspecs/features/qt_functions.prf \
+		/usr/lib64/qt5/mkspecs/features/qt_config.prf \
+		/usr/lib64/qt5/mkspecs/linux-g++/qmake.conf \
+		/usr/lib64/qt5/mkspecs/features/spec_post.prf \
+		../.qmake.stash \
+		/usr/lib64/qt5/mkspecs/features/exclusive_builds.prf \
+		/usr/lib64/qt5/mkspecs/features/toolchain.prf \
+		/usr/lib64/qt5/mkspecs/features/default_pre.prf \
+		/usr/lib64/qt5/mkspecs/features/resolve_config.prf \
+		/usr/lib64/qt5/mkspecs/features/default_post.prf \
+		/usr/lib64/qt5/mkspecs/features/warn_on.prf \
+		/usr/lib64/qt5/mkspecs/features/qt.prf \
+		/usr/lib64/qt5/mkspecs/features/resources.prf \
+		/usr/lib64/qt5/mkspecs/features/moc.prf \
+		/usr/lib64/qt5/mkspecs/features/unix/thread.prf \
+		/usr/lib64/qt5/mkspecs/features/qmake_use.prf \
+		/usr/lib64/qt5/mkspecs/features/file_copies.prf \
+		/usr/lib64/qt5/mkspecs/features/testcase_targets.prf \
+		/usr/lib64/qt5/mkspecs/features/exceptions.prf \
+		/usr/lib64/qt5/mkspecs/features/yacc.prf \
+		/usr/lib64/qt5/mkspecs/features/lex.prf \
+		cgi.pro \
+		/usr/lib64/libQt5Core.prl
+	$(QMAKE) -o Makefile cgi.pro -spec linux-g++
+/usr/lib64/qt5/mkspecs/features/spec_pre.prf:
+/usr/lib64/qt5/mkspecs/common/unix.conf:
+/usr/lib64/qt5/mkspecs/common/linux.conf:
+/usr/lib64/qt5/mkspecs/common/sanitize.conf:
+/usr/lib64/qt5/mkspecs/common/gcc-base.conf:
+/usr/lib64/qt5/mkspecs/common/gcc-base-unix.conf:
+/usr/lib64/qt5/mkspecs/common/g++-base.conf:
+/usr/lib64/qt5/mkspecs/common/g++-unix.conf:
+/usr/lib64/qt5/mkspecs/qconfig.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3danimation.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3danimation_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dcore.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dcore_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dextras.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dextras_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dinput.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dinput_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dlogic.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dlogic_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquick.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquick_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickanimation.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickanimation_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickextras.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickextras_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickinput.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickinput_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickrender.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickrender_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickscene2d.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3dquickscene2d_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3drender.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_3drender_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_accessibility_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_bluetooth_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_concurrent_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_core.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_core_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_dbus_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_designer.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_designer_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_designercomponents_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_devicediscovery_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_egl_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfs_kms_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_eglfsdeviceintegration_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_enginio.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_enginio_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_eventdispatcher_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_fb_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_fontdatabase_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_glx_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_gui.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_gui_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_help.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_help_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_input_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_kms_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_linuxaccessibility_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_location.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_location_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_multimedia_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_multimediawidgets_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_network.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_network_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_nfc_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_opengl_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_openglextensions_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_packetprotocol_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_platformcompositor_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_positioning_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_printsupport_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qml.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qml_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldebug_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qmldevtools_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qmltest_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quick.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quick_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quickcontrols2.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quickcontrols2_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quickparticles_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quicktemplates2_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_quickwidgets_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_script.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_script_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_scripttools_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_sensors_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_serialbus.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_serialbus_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_serialport_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_service_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_sql.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_sql_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_svg.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_svg_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_testlib_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_theme_support_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_uiplugin.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_uitools_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandclient_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_waylandcompositor_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_webchannel_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_websockets_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_widgets_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_x11extras_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_xml.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_xml_private.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns.pri:
+/usr/lib64/qt5/mkspecs/modules/qt_lib_xmlpatterns_private.pri:
+/usr/lib64/qt5/mkspecs/features/qt_functions.prf:
+/usr/lib64/qt5/mkspecs/features/qt_config.prf:
+/usr/lib64/qt5/mkspecs/linux-g++/qmake.conf:
+/usr/lib64/qt5/mkspecs/features/spec_post.prf:
+../.qmake.stash:
+/usr/lib64/qt5/mkspecs/features/exclusive_builds.prf:
+/usr/lib64/qt5/mkspecs/features/toolchain.prf:
+/usr/lib64/qt5/mkspecs/features/default_pre.prf:
+/usr/lib64/qt5/mkspecs/features/resolve_config.prf:
+/usr/lib64/qt5/mkspecs/features/default_post.prf:
+/usr/lib64/qt5/mkspecs/features/warn_on.prf:
+/usr/lib64/qt5/mkspecs/features/qt.prf:
+/usr/lib64/qt5/mkspecs/features/resources.prf:
+/usr/lib64/qt5/mkspecs/features/moc.prf:
+/usr/lib64/qt5/mkspecs/features/unix/thread.prf:
+/usr/lib64/qt5/mkspecs/features/qmake_use.prf:
+/usr/lib64/qt5/mkspecs/features/file_copies.prf:
+/usr/lib64/qt5/mkspecs/features/testcase_targets.prf:
+/usr/lib64/qt5/mkspecs/features/exceptions.prf:
+/usr/lib64/qt5/mkspecs/features/yacc.prf:
+/usr/lib64/qt5/mkspecs/features/lex.prf:
+cgi.pro:
+/usr/lib64/libQt5Core.prl:
+qmake: FORCE
+	@$(QMAKE) -o Makefile cgi.pro -spec linux-g++
+
+qmake_all: FORCE
+
+
+all: Makefile $(TARGET)
+
+dist: distdir FORCE
+	(cd `dirname $(DISTDIR)` && $(TAR) $(DISTNAME).tar $(DISTNAME) && $(COMPRESS) $(DISTNAME).tar) && $(MOVE) `dirname $(DISTDIR)`/$(DISTNAME).tar.gz . && $(DEL_FILE) -r $(DISTDIR)
+
+distdir: FORCE
+	@test -d $(DISTDIR) || mkdir -p $(DISTDIR)
+	$(COPY_FILE) --parents $(DIST) $(DISTDIR)/
+	$(COPY_FILE) --parents /usr/lib64/qt5/mkspecs/features/data/dummy.cpp $(DISTDIR)/
+	$(COPY_FILE) --parents test.cpp $(DISTDIR)/
+
+
+clean: compiler_clean 
+	-$(DEL_FILE) $(OBJECTS)
+	-$(DEL_FILE) *~ core *.core
+
+
+distclean: clean 
+	-$(DEL_FILE) $(TARGET) 
+	-$(DEL_FILE) Makefile
+
+
+####### Sub-libraries
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+check: first
+
+benchmark: first
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_moc_predefs_make_all: moc_predefs.h
+compiler_moc_predefs_clean:
+	-$(DEL_FILE) moc_predefs.h
+moc_predefs.h: /usr/lib64/qt5/mkspecs/features/data/dummy.cpp
+	g++ -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -std=gnu++11 -Wall -W -dM -E -o moc_predefs.h /usr/lib64/qt5/mkspecs/features/data/dummy.cpp
+
+compiler_moc_header_make_all:
+compiler_moc_header_clean:
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_predefs_clean 
+
+####### Compile
+
+test.o: test.cpp ../include/YT_EHOME_shm.h
+	$(CXX) -c $(CXXFLAGS) $(INCPATH) -o test.o test.cpp
+
+####### Install
+
+install:  FORCE
+
+uninstall:  FORCE
+
+FORCE:
+

+ 21 - 0
cgi/cgi.pro

@@ -0,0 +1,21 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2019-04-07T11:39:23
+#
+#-------------------------------------------------
+
+QT       += core
+
+QT       -= gui
+
+TARGET = demo
+CONFIG   += console
+CONFIG   -= app_bundle
+
+TEMPLATE = app
+
+
+SOURCES += test.cpp
+
+
+LIBS += -lfcgi -ljson-c

BIN
cgi/demo


BIN
cgi/demo2.cgi


+ 226 - 0
cgi/test.cpp

@@ -0,0 +1,226 @@
+#include "fcgi_stdio.h"
+#include "../include/YT_EHOME_shm.h"
+#include <stdlib.h>
+#include <string.h>
+#include <json-c/json.h>
+#include <ctype.h>
+
+MyEHomeShm *ytShm;
+
+
+
+unsigned char* urldecode(char *string)
+{
+        int destlen = 0;
+        unsigned char *src, *dest;
+        unsigned char *newstr;
+
+        if (string == NULL) return NULL;
+
+        for (src = (unsigned char *)string; *src != '\0'; src++)
+ {
+                if (*src == '%')
+  {
+   destlen++;
+  }
+        }
+
+        newstr = (unsigned char *)malloc(destlen + 1);
+        src = (unsigned char *)string;
+        dest = newstr;
+
+        while (*src != '\0')
+ {
+                if (*src == '%')
+  {
+                        char h = toupper(src[1]);
+                        char l = toupper(src[2]);
+                        int vh, vl;
+                        vh = isalpha(h) ? (10+(h-'A')) : (h-'0');
+                        vl = isalpha(l) ? (10+(l-'A')) : (l-'0');
+                        *dest++ = ((vh<<4)+vl);
+                        src += 3;
+                } else if (*src == '+') {
+                        *dest++ = ' ';
+                        src++;
+                } else {
+                        *dest++ = *src++;
+                }
+        }
+        *dest = 0;
+
+        return newstr;
+}
+bool shm_load()
+{
+    int shmid;
+    key_t key;
+    if((key = ftok(SHM_PATH,(int)SHM_PORT))==-1)
+        return false;
+    if((shmid = shmget(key,sizeof(MyEHomeShm),IPC_CREAT|0666))==-1)
+        return false;
+    ytShm = (MyEHomeShm *)shmat(shmid,NULL,0);
+    return true;
+}
+
+json_object *get_hc_list(){
+    int i;
+    json_object *obj;
+    json_object *list = json_object_new_array();
+    char tmp[256];
+    for(i=0;i<DEVICES_COUNT;i++){
+        if(ytShm->eHomeDevice[i].io[8]!=0x00)
+        {
+            obj = json_object_new_object();
+            sprintf(tmp,"%s",ytShm->eHomeDevice[i].deviceID);
+            json_object_object_add(obj,"ID",json_object_new_int(i+1));
+            json_object_object_add(obj,"DEVICE",json_object_new_string((const char *)tmp));
+            if(ytShm->eHomeDevice[i].io[8]==0x01)
+                json_object_object_add(obj,"LIVEONLINE",json_object_new_boolean(true));
+            else
+                json_object_object_add(obj,"LIVEONLINE",json_object_new_boolean(false));
+            if(ytShm->eHomeDevice[i].transed==0x01)
+                json_object_object_add(obj,"ONAIR",json_object_new_boolean(true));
+            else
+                json_object_object_add(obj,"ONAIR",json_object_new_boolean(false));
+
+            json_object_object_add(obj,"ALIVEVALUE",json_object_new_int(ytShm->eHomeDevice[i].io[14]&0xff));
+            json_object_array_add(list,obj);
+        }
+    }
+    return list;
+}
+
+json_object *get_cu_list(){
+    int i;
+    json_object *obj;
+    json_object *list = json_object_new_array();
+    char tmp[256];
+    for(i=0;i<DEVICES_COUNT;i++){
+        if(ytShm->eHomeDevice[i].Connected==0x01){
+            obj = json_object_new_object();
+            sprintf(tmp,"%s",ytShm->eHomeDevice[i].deviceID);
+            json_object_object_add(obj,"ID",json_object_new_int(i+1));
+            json_object_object_add(obj,"DEVICE",json_object_new_string((const char *)tmp));
+            json_object_array_add(list,obj);
+        }
+    }
+}
+
+bool active_live(json_object *q_body){
+    json_object *q_device=NULL, *q_act=NULL, *q_idx=NULL;
+    int act=-1,idx=0,i;
+    char deviceId[256],tmp[256];
+    json_object_object_foreach(q_body,key,val){
+        if(strcmp(key,"DEVICE")==0)
+            q_device = val;
+        else if(strcmp(key,"ACTION")==0)
+            q_act = val;
+        else if(strcmp(key,"IDX")==0){
+            q_idx = val;
+            if(json_object_get_type(q_idx)==json_type_int)
+                idx = json_object_get_int(q_idx);
+        }
+    }
+    if((NULL!=q_device)&&(NULL!=q_act)&&(json_object_get_type(q_device)==json_type_string)&&(json_object_get_type(q_act)==json_type_int)){
+        sprintf(deviceId,"%s",json_object_get_string(q_device));
+        act = json_object_get_int(q_act);
+        if((act==0x00)||(act==0x01)){
+            for(i=0;i<DEVICES_COUNT;i++){
+                if(ytShm->eHomeDevice[i].Inited==0x01){
+//                    sprintf(tmp,"%s",ytShm->eHomeDevice[i].deviceID);
+                    if(strcmp(ytShm->eHomeDevice[i].deviceID,deviceId)==0){
+                        if((idx>=0)&&(idx<8)){
+                            ytShm->eHomeDevice[i].io[idx]=act;
+                            return true;
+                        }else
+                            return false;
+                    }
+                }
+            }
+        }
+    }
+    return false;
+}
+
+bool json_request_action(char *request, json_object *body){
+    json_object *q_json = NULL, *q_body =NULL, *q_cmd = NULL;
+    int cmd;
+    q_json = json_tokener_parse(request);
+    if(q_json!=NULL){
+//        json_object_object_add(body,"QUERY",q_json);
+        json_object_object_foreach(q_json,key,val){
+            if(strcmp(key,"CMD")==0)
+                q_cmd = val;
+            else if(strcmp(key,"BODY")==0)
+                q_body = val;
+        }
+        if(NULL!=q_cmd){
+            if(json_object_get_type(q_cmd)==json_type_int){
+                cmd = json_object_get_int(q_cmd);
+                switch (cmd) {
+                case GET_LIVE_LIST:
+                    json_object_object_add(body,"CMD",json_object_new_int(cmd));
+                    json_object_object_add(body,"LIST",get_hc_list());
+                    break;
+                case GET_ONLINE_LIST:
+                    json_object_object_add(body,"CMD",json_object_new_int(cmd));
+                    json_object_object_add(body,"LIST",get_cu_list());
+                    break;
+                case ACTIVE_LIVE:
+                    json_object_object_add(body,"CMD",json_object_new_int(cmd));
+                    if(active_live(q_body))
+                        json_object_object_add(body,"ACTION",json_object_new_int(1));
+                    else
+                        json_object_object_add(body,"ACTION",json_object_new_int(0));
+                    break;
+                default:
+                    json_object_object_add(body,"RESULT",json_object_new_int(0));
+                    break;
+                }
+            }
+        }else{
+            json_object_put(q_json);
+            return false;
+        }
+        json_object_put(q_json);
+    }else
+        return false;
+    return true;
+}
+
+int main(void)
+{
+    int i;
+    char input[1024],lenstr[60],data[1024];
+    int len;
+    json_object *json,*json_body;
+    if(shm_load()){
+        while (FCGI_Accept() >= 0){
+            sprintf(lenstr,"%s",getenv("CONTENT_LENGTH"));
+            len = atoi(lenstr);
+            if((len>0)&&(len<1024)){
+                bzero(input,sizeof(input));
+                bzero(data,sizeof(data));
+                fgets(input,len+1,stdin);
+                for(i=0;i<(len-10);i++)
+                    data[i] = input[10+i];
+                json = json_object_new_object();
+                json_body = json_object_new_object();
+                if(json_request_action(data,json_body)){
+                    json_object_object_add(json,"RESULT",json_body);
+                    json_object_object_add(json,"REPLY",json_object_new_int(1));
+                }else{
+                    json_object_object_add(json,"REPLY",json_object_new_int(0));
+                }
+                json_object_object_add(json,"QUERY",json_object_new_string(data));
+                printf("Access-Control-Allow-Origin: *\r\n");
+                printf("Content-type: text/html\r\n\r\n%s",json_object_to_json_string(json));
+                json_object_put(json);
+            }
+        }
+        shmdt(ytShm);
+    }
+    return 0;
+}
+